package 基础;

//Java进制转换方法
//十进制转成十六进制：Integer.toHexString(int i)   
//十进制转成八进制：Integer.toOctalString(int i)   
//十进制转成二进制：Integer.toBinaryString(int i)   
//十六进制转成十进制：Integer.valueOf("FFFF",16).toString()   
//八进制转成十进制：Integer.valueOf("876",8).toString()   
//二进制转十进制：Integer.valueOf("0101",2).toString()   
//
//1. 直接将2,8,16进制直接转换为10进制
//
//java.lang.Integer类   parseInt(String s, int radix)   
//使用第二个参数指定的基数，将字符串参数解析为有符号的整数。   
//examples from jdk:   
//parseInt("0", 10) returns 0   
//parseInt("473", 10) returns 473   
//parseInt("-0", 10) returns 0   
//parseInt("-FF", 16) returns -255   
//parseInt("1100110", 2) returns 102   
//parseInt("2147483647", 10) returns 2147483647   
//parseInt("-2147483648", 10) returns -2147483648   
//parseInt("2147483648", 10) throws a NumberFormatException   
//parseInt("99", throws a NumberFormatException   
//parseInt("Kona", 10) throws a NumberFormatException   
//parseInt("Kona", 27) returns 411787   

public class 进制转换 {
public static void main(String args[]) {
	System.out.println(Integer.parseInt("0", 10)); //returns 0   
	System.out.println(Integer.parseInt("473", 10)); //returns 473   
	System.out.println(Integer.parseInt("-0", 10)); //returns 0   
	System.out.println(Integer.parseInt("-FF", 16)); //returns -255   
	System.out.println(Integer.parseInt("1100110", 2)); //returns 102   
	System.out.println(Integer.parseInt("2147483647", 10)); //returns 2147483647   
	System.out.println(Integer.parseInt("-2147483648", 10)); //returns -2147483648   
	System.out.println(Integer.parseInt("2147483648", 10)); //throws a NumberFormatException   
	System.out.println(Integer.parseInt("99",10)); //throws a NumberFormatException   
	System.out.println(Integer.parseInt("Kona", 10)); //throws a NumberFormatException   
	System.out.println(Integer.parseInt("Kona", 27)); //returns 411787 
	}
}


//2. 的2,8,16进制互相转换
//
//public class 进制转换 {
//    public static void main(String args[]) {
//        int i = 10;
//        System.out.println("十进制数 " + i + " 转换成十六进制为 " + Integer.toHexString(i));
//        System.out.println("十进制数 " + i + " 转换成八进制为 " + Integer.toOctalString(i));
//        System.out.println("十进制数 " + i + " 转换成二进制为 "+ Integer.toBinaryString(i));
//        String str = "A";
//        System.out.println("十六进制数 " + str + " 转换成10进制为 "+ Integer.parseInt(str, 16));
//        str = "012";
//        System.out.println("八进制数 " + str + " 转换成10进制为 "+ Integer.parseInt(str, 8));
//        str = "1010";
//        System.out.println("二进制数 " + str + " 转换成10进制为 "+ Integer.parseInt(str, 2));
//    }
//}

Java十进制转八进制有三种方法

方法一:Integer.toOctalString(int i) 

方法二:先把十进制转成二进制，然后再由二进制转成八进制或者十六进制。

方法三:把十进制按照除8取余，直到商为0为止。
//─│┌┐└┘┴├┤┬┴←↓↑→╮╯╰╭
   8│150                                16│150         
    └┬────    余数                         └┬────    余数 
    8│18  ---- 6                         16│ 9  ---- 6 
     └┬───                                 └───       
     8│2  ---- 2                             0  ---- 9 
      └───                                 
       0  ---- 2                           
150(十进制)=226(八进制)                 150(十进制)=96(十六进制)



